package cn.bugstack.middleware.db.router;
/**
 * 数据库上下文管理: DBContextHolder
 * 主要用于在多线程环境中存储和获取当前线程的数据库和表的上下文信息。
 * 这对于动态切换数据源或表非常有用，尤其是在使用多数据源的应用程序中。
 * */
public class DBContextHolder {
    private static final ThreadLocal<String> dbKey = new ThreadLocal<>();
    private static final ThreadLocal<String> tbKey = new ThreadLocal<>();

    //将传入的值存储在当前线程的 ThreadLocal 中
    public static void setDBKey(String dbKey) {
        DBContextHolder.dbKey.set(dbKey);
    }
    //获取当前线程的数据库键
    public static String getDBKey() {
        return dbKey.get();
    }
    //设置当前线程的表键
    public static void setTBKey(String tbKey) {
        DBContextHolder.tbKey.set(tbKey);
    }
    //获取当前线程的数据表键
    public static String getTBKey() {
        return tbKey.get();
    }
    public static void clearDBKey() {
        dbKey.remove();
    }
    public static void clearTBKey() {
        tbKey.remove();
    }
}
